home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / gemini / man / options / exopt.mup < prev    next >
Encoding:
Text File  |  1994-09-22  |  1.1 KB  |  89 lines

  1. #!mupfel
  2. #
  3. # @(#) exopt.mup
  4. # @(#) Stefan Eissing, 12. April 1993
  5. #
  6. #
  7. # Extrahiere die angegebene OPT-Datei aus default.opt. Sind keine
  8. # Parameter angegeben, dann werden alle in default.opt enthaltenen
  9. # Dateien entpackt.
  10. #
  11. # BUGS: arbeitet nur im aktuellen Verzeichnis
  12.  
  13.  
  14. extract_file()
  15. {
  16.     while read line
  17.     do
  18.         if [ Aend = A"$line" ]
  19.         then
  20.             return
  21.         fi
  22.  
  23.         echo $line
  24.  
  25.     done >> $1
  26. }
  27.  
  28.  
  29. extract_all()
  30. {
  31.     lastline=unknown.opt
  32.  
  33.     while read line
  34.     do
  35.         if [ Abegin = A"$line" ]
  36.         then
  37.             echo extracting $1 >&2
  38.             extract_file $lastline
  39.         fi
  40.  
  41.         lastline=$line
  42.     done <default.opt
  43.  
  44.     rm -v default.opt
  45. }
  46.  
  47.  
  48. extract()
  49. {
  50.     echo extracting $1 >&2
  51.  
  52.     while read line
  53.     do
  54.         if [ A"$1" = A"$line" ]
  55.         then
  56.             if read line
  57.             then
  58.                 extract_file $1
  59.             else
  60.                 echo No begin after $1 >&2
  61.                 exit 99
  62.             fi
  63.         else
  64.             # normale Zeile, die auch erhalten bleiben soll
  65.             echo $line
  66.         fi
  67.  
  68.     done <default.opt >tmp.opt
  69.  
  70.     if [ -s tmp.opt ]
  71.     then
  72.         mv -v tmp.opt default.opt
  73.     else
  74.         rm -v default.opt
  75.     fi
  76. }
  77.  
  78.  
  79. if [ $# -gt 0 ]
  80. then
  81.     for i in $*
  82.     do
  83.         extract $i
  84.     done
  85. else
  86.     extract_all
  87. fi
  88.  
  89.